/*
 * User: user
 * Date: 10/12/2007
 * Time: 12:45:27
 */
package javax.webbeans;

import java.lang.annotation.Annotation;
import java.util.Set;

public interface Bean<T> {

    Class<T> getImplClass();

    Set<Class<? super T>> getTypes();

    String getName();

    Set<Annotation> getBindingTypes();

    Class<? extends Annotation> getScopeType();

    Class<? extends Annotation> getDeploymentType();

    T create(Manager manager);

    void destroy(Manager manager, T instance);
}